From 6718a21b1ce1d282e66dfc2bd37f4b7b5d3a09e7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 12 Jan 2014 22:09:52 -0500 Subject: [PATCH] Add move and resize to the csd window menu With the previous commit, these operations can be implemented now. --- gtk/gtkwindow.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 3966c38ce0..a99272884e 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -8124,6 +8124,28 @@ close_window_clicked (GtkMenuItem *menuitem, send_delete_event (window); } +static void +move_window_clicked (GtkMenuItem *menuitem, + gpointer user_data) +{ + GtkWidget *widget = (GtkWidget *)user_data; + + gdk_window_begin_move_drag (gtk_widget_get_window (widget), + 0, 0, 0, + gtk_get_current_event_time ()); +} + +static void +resize_window_clicked (GtkMenuItem *menuitem, + gpointer user_data) +{ + GtkWidget *widget = (GtkWidget *)user_data; + + gdk_window_begin_resize_drag (gtk_widget_get_window (widget), + 0, 0, 0, 0, + gtk_get_current_event_time ()); +} + static void gtk_window_do_popup (GtkWindow *window, GdkEventButton *event) @@ -8159,6 +8181,20 @@ gtk_window_do_popup (GtkWindow *window, G_CALLBACK (_gtk_window_toggle_maximized), window); gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem); + menuitem = gtk_menu_item_new_with_label (_("Move")); + gtk_widget_show (menuitem); + g_signal_connect (G_OBJECT (menuitem), "activate", + G_CALLBACK (move_window_clicked), window); + gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem); + + menuitem = gtk_menu_item_new_with_label (_("Resize")); + gtk_widget_show (menuitem); + if (!priv->resizable || priv->maximized) + gtk_widget_set_sensitive (menuitem, FALSE); + g_signal_connect (G_OBJECT (menuitem), "activate", + G_CALLBACK (resize_window_clicked), window); + gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem); + menuitem = gtk_check_menu_item_new_with_label (_("Always on Top")); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), priv->above_initially); if (priv->maximized) -- 2.30.2